package com.basker.pisces.domain.property.meta;

import com.basker.pisces.domain.property.InvalidPropertyValueException;
import com.basker.pisces.domain.value.IdValue;

/**
 * 表示主键标识的属性，当实体有IdProperty时，即由业务管控主键的生成，持久层框架不再处理。
 *
 * @author hangwen
 */
public class IdProperty extends Property<IdValue> {

    public IdProperty() {
        this.setRequired(true);
    }

    @Override
    public IdValue createValue(Object rawValue) {
        return new IdValue(rawValue);
    }

    @Override
    public void setValue(Object dataObject, Object inputValue) throws InvalidPropertyValueException {
        this.setRawValue(dataObject, inputValue);
    }

}
